home *** CD-ROM | disk | FTP | other *** search
Wrap
Java Source | 2001-06-23 | 11.6 KB | 422 lines
/* ArcanaApp.SpellBrowserFrame - a means by which to browse the contents of a spellbook by level. Written by Scott C. Ziegler for use with Simulcra™. vers. history: 05.31.00 - Added code for button events. Removed quitting routines from window closing code, meaning that I must add at least a quit action to the menubar. 09.15.00 - reached a syntactically correct version. 09.19.00 - decided to overhaul project using layout managers. 10.25.00 - ***overhaul: began project to make a functional spell book app 11.30.00 - achieved a compliable state with dummy puppet tester program Work Needed: - 11.11.00 - move selectSpellLevel out to ArcanaApp - 11.11.00 - abstract list assignment into a public method with parameters from app. - add JDialog warnings to Delete button and other destructive updates. - make default display initializer (for constructor and defaults) Work Completed: - added beginning event code for buttons - added DefaultListModels to JLists in initLists() function - implemented selectSpellLevel(SpellRegisterVector vec) - set selection in model to level 1 in initLists() - completed event code for buttons - populated the menubar with some menuitems linked to events. */ /* This file and its intellectual contents are considered property of the creator and are to be treated as such with respect to use in other applications. Any use of this software for any purpose whatsoever must have explicit permission from the author of the file. This code is part of an ongoing development process for future possible products, and so is considered private property. Do not use without permission. Author: Scott C. Ziegler <Aslan@Narnia.net> */ package Thoth; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; public class SpellBrowserFrame extends JFrame { // Data Members: private int currentSpellsListLevel = 1; private DefaultListModel spellsModel; private DefaultListModel levelModel; // ActionListeners ActionListener editListener; ActionListener viewListener; ActionListener deleteListener; ActionListener aboutListener; ActionListener loadListener; ActionListener saveListener; ActionListener saveAsListener; ActionListener quitListener; ActionListener fwdListener; ActionListener backListener; ListSelectionListener levelSelectionListener; ListSelectionListener spellsSelectionListener; MouseAdapter mouseAdapter; // Menus JMenuBar menuBar; JMenu fileMenu; JMenuItem aboutBoxMenuItem; JMenuItem loadMenuItem; JMenuItem saveMenuItem; JMenuItem saveAsMenuItem; JMenuItem quitMenuItem; JMenu editMenu; JMenuItem undoMenuItem; JMenuItem cutMenuItem; JMenuItem copyMenuItem; JMenuItem pasteMenuItem; JMenu optionsMenu; JMenuItem optionsMenuItem; JMenu someMenu; JMenuItem someMenuItem; // Buttons JButton backButton; JButton fwdButton; JButton viewButton; JButton editButton; JButton deleteButton; // Panels JPanel buttonPanel; // SplitPane JSplitPane splitPane; JScrollPane levelScrollPane; JScrollPane spellsScrollPane; JList levelList; JList spellsList; // Constructors public SpellBrowserFrame() { super("Arcana Spell Browser"); initMenus(); initButtons(); initLists(); initBrowserPane(); setJMenuBar(menuBar); Container progFrameContentPane = getContentPane(); progFrameContentPane.add(splitPane, BorderLayout.CENTER); progFrameContentPane.add(buttonPanel, BorderLayout.SOUTH); setSize(new Dimension(640,480)); //setVisible(true); } // Methods // Selectors public int getCurrentSpellsListLevel() { return currentSpellsListLevel; } public JList getSpellsList() { return spellsList; } public JList getLevelList() { return levelList; } // Mutators public void dimSave() { saveMenuItem.setEnabled(false); } public void undimSave() { saveMenuItem.setEnabled(true); } public void setSpellsListModel(DefaultListModel dlm) { spellsModel = dlm; } public void setLevelListModel(DefaultListModel dlm) { levelModel = dlm; } public void setViewListener(ActionListener vl) { viewButton.removeActionListener(viewListener); viewButton.addActionListener(vl); } public void setEditListener(ActionListener el) { editButton.removeActionListener(editListener); editButton.addActionListener(el); } public void setDeleteListener(ActionListener dl) { deleteButton.removeActionListener(deleteListener); deleteButton.addActionListener(dl); } public void setAboutListener(ActionListener al) { aboutBoxMenuItem.removeActionListener(aboutListener); aboutBoxMenuItem.addActionListener(al); } public void setLoadListener(ActionListener ll) { loadMenuItem.removeActionListener(loadListener); loadMenuItem.addActionListener(ll); } public void setSaveListener(ActionListener sl) { saveMenuItem.removeActionListener(saveListener); saveMenuItem.addActionListener(sl); } public void setSaveAsListener(ActionListener sal) { saveAsMenuItem.removeActionListener(saveAsListener); saveAsMenuItem.addActionListener(sal); } public void setQuitListener(ActionListener ql) { quitMenuItem.removeActionListener(quitListener); quitMenuItem.addActionListener(ql); } public void setFwdListener(ActionListener fl) { fwdButton.removeActionListener(fwdListener); fwdButton.addActionListener(fl); } public void setBackListener(ActionListener bl) { backButton.removeActionListener(backListener); backButton.addActionListener(bl); } public void setLevelListSelectionListener(ListSelectionListener lsl) { levelList.removeListSelectionListener(levelSelectionListener); levelList.addListSelectionListener(lsl); } public void setSpellsListSelectionListener(ListSelectionListener lsl) { spellsList.removeListSelectionListener(spellsSelectionListener); spellsList.addListSelectionListener(lsl); } public void setSpellsListMouseListener(MouseListener ml) { spellsList.removeMouseListener(mouseAdapter); spellsList.addMouseListener(ml); } // initMenus AOK private void initMenus() { menuBar = new JMenuBar(); menuBar.setBorder(new BevelBorder(BevelBorder.RAISED)); fileMenu = new JMenu("File"); fileMenu.setMnemonic('F'); // aboutBoxMenuItem = new JMenuItem("About…"); fileMenu.add(aboutBoxMenuItem); aboutListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("About!"); } }; aboutBoxMenuItem.addActionListener(aboutListener); // loadMenuItem = new JMenuItem("Load…"); fileMenu.add(loadMenuItem); loadListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("load!"); } }; loadMenuItem.addActionListener(loadListener); // saveMenuItem = new JMenuItem("Save"); fileMenu.add(saveMenuItem); saveListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("save!"); } }; saveMenuItem.addActionListener(saveListener); // saveAsMenuItem = new JMenuItem("Save As…"); fileMenu.add(saveAsMenuItem); saveAsListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("SaveAs!"); } }; saveAsMenuItem.addActionListener(saveAsListener); // quitMenuItem = new JMenuItem("Quit"); fileMenu.add(quitMenuItem); quitListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Quit!"); } }; quitMenuItem.addActionListener(quitListener); // editMenu = new JMenu("Edit"); editMenu.setMnemonic('E'); // undoMenuItem = new JMenuItem("Undo"); editMenu.add(undoMenuItem); // cutMenuItem = new JMenuItem("Cut"); editMenu.add(cutMenuItem); // copyMenuItem = new JMenuItem("Copy"); editMenu.add(copyMenuItem); // pasteMenuItem = new JMenuItem("Paste"); editMenu.add(pasteMenuItem); // optionsMenu = new JMenu("Options"); optionsMenuItem = new JMenuItem("Options…"); optionsMenu.add(optionsMenuItem); // someMenu = new JMenu("Something"); // someMenuItem = new JMenuItem("Something…"); // menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(optionsMenu); menuBar.add(someMenu); } private void initButtons() { backButton = new JButton("Back"); backListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Back!"); } }; backButton.addActionListener(backListener); fwdButton = new JButton("Fwd"); fwdListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Fwd!"); } }; fwdButton.addActionListener(fwdListener); viewButton = new JButton("View"); viewListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("View!"); } }; viewButton.addActionListener(viewListener); editButton = new JButton("Edit"); editListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Edit!"); } }; editButton.addActionListener(editListener); deleteButton = new JButton("Delete"); deleteListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Delete!"); } }; deleteButton.addActionListener(deleteListener); buttonPanel = new JPanel(); buttonPanel.setLayout(new GridLayout(1,5,5,5)); buttonPanel.add(backButton); buttonPanel.add(fwdButton); buttonPanel.add(editButton); buttonPanel.add(viewButton); buttonPanel.add(deleteButton); } // initLists AOK private void initLists() { spellsModel = new DefaultListModel(); levelModel = new DefaultListModel(); levelList = new JList(); spellsList = new JList(); spellsList.setModel(spellsModel); levelList.setModel(levelModel); levelList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); spellsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); Vector vec = new Vector(9); vec.addElement("Level 1"); vec.addElement("Level 2"); vec.addElement("Level 3"); vec.addElement("Level 4"); vec.addElement("Level 5"); vec.addElement("Level 6"); vec.addElement("Level 7"); vec.addElement("Level 8"); vec.addElement("Level 9"); levelList.setListData(vec); levelList.setSelectionInterval(0,0); levelSelectionListener = new ListSelectionListener() { public void valueChanged(ListSelectionEvent lse) { System.out.println(lse.toString()); } }; levelList.addListSelectionListener(levelSelectionListener); spellsSelectionListener = new ListSelectionListener() { public void valueChanged(ListSelectionEvent lse) { System.out.println(lse.toString()); } }; spellsList.addListSelectionListener(spellsSelectionListener); mouseAdapter = new MouseAdapter() { public void mouseClicked(MouseEvent me) { } }; spellsList.addMouseListener(mouseAdapter); } // initBrowserPane AOK private void initBrowserPane() { levelScrollPane = new JScrollPane(); spellsScrollPane = new JScrollPane(); levelScrollPane.getViewport().add(levelList); spellsScrollPane.getViewport().add(spellsList); splitPane = new JSplitPane(); splitPane.add(levelScrollPane, JSplitPane.LEFT); splitPane.add(spellsScrollPane, JSplitPane.RIGHT); } public void clearSpellsModel() { spellsList.setListData(new Vector()); } public void changeSpellsModel(Vector spellsVector) { spellsList.setListData(spellsVector); } void thisWindowClosing(java.awt.event.WindowEvent e) { setVisible(false); // dispose(); keep the memory of the frame to re-init!!! // System.exit(0); this quits the app?!?! } }